Conventionally, in client-server network systems, such as the Internet, HTTP clients such as web browsers render HTTP responses including HTML content, such as web pages received from web servers. Typically, the client requests the HTML content from the web server, and then renders and displays the content for the user. Such content can include, for example, text, images, interactive content, and the like, and/or any combination thereof.
Because of transfer speed, bandwidth restrictions, latency, and/or rendering speed, it can take some time for content to appear on the user's screen. Images often take longer than other forms of content, because they involve relatively large amounts of data that must be transferred to the client, and because there may be limitations on the rendering speed because of the available processing power of the client machine. Accordingly, users of browser software often experience a lag time between the moment when a web page is requested (for example by clicking on a link or entering a URL) and the time when the complete web page, including its images, is presented on the screen for the user to see.
It is known to store images according to a progressive compression mechanism. For example, the progressive JPEG format compresses the image data in multiple passes of successively higher levels of detail. When an image in progressive JPEG format is rendered at a browser, a lower level of detail can be initially displayed. As more data is received at the client, the lower-resolution version of the image can be replaced by successively higher resolution versions. In this manner, the user can see an initial version of the image more quickly than if the browser waited until the full-resolution image were received and rendered.
Web pages often extend beyond the area that is initially viewable on a window of the user's display screen. Typically, an initial portion of the web page is shown (occupying either the full display screen or a window on the display screen; this display area is referred to herein as a “viewport”), and the user can scroll down to see the remainder of the web page. Web page authors often take into account which areas of the web page are likely to be initially viewable upon presentation of the web page. However, such areas differ from client to client, depending on various factors such as screen size, screen resolution, browser settings, user-specified preferences, and the like. Tools such as Google Browser Size, available from Google Inc. of Mountain View, Calif., provide web page authors with guidance as to which areas of the web page are likely to be initially viewable by what percentage of users.
Existing image optimization methods do not adequately take into account which areas of a web page are likely to be initially viewable upon presentation of the web page. Rather, such existing techniques generally make no distinction between those images that are likely to be initially viewable and those that are not.